package com.hxzy.common.util;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

import java.util.List;

/**
 * 结合alibabafastjson 的工具类
 * @author:wy
 * Date:2018/12/27
 */
public class JsonUtil {


    /**
     * 把json字符串转化成实体对象
     * @param jsonStr
     * @param cls
     * @param <T>
     * @return
     */
    public static <T> T jsonStrToObject(String jsonStr,Class<T> cls){

        return JSON.parseObject(jsonStr,cls);
    }

    /**
     * 把对象转化成JSONObject
     * @param obj
     * @return
     */
    public static JSONObject objectToJsonObject(Object obj){
        return JSON.parseObject(objectToJsonStr(obj));
    }

    /**
     * 把对象转换成jsonString
     * @param obj
     * @return
     */
    public static  String objectToJsonStr(Object obj){
       return  JSONObject.toJSONString(obj);
    }

    /**
     * 对象数组转json字符串
     * @param objects
     * @return
     */
    public static String objArrayToJsonStr(Object [] objects){

        return JSON.toJSONString(objects);
    }

    /**
     * json字符串转对象数组
     * @param jsonString
     * @param cls
     * @return
     */
    public static List jsonStrToObjArray(String jsonString, Class cls){
        List lists = JSON.parseArray(jsonString, cls);
        return lists;
    }

    /**
     * Bean 转化为另外个
     * @param obj
     * @param cls
     * @param <T>
     * @return
     */
    public static <T> T BeanToBean(Object obj,Class<T> cls){
        return jsonStrToObject(objectToJsonStr(obj),cls);
    }
}
